package com.arpa.oms.service;


import com.arpa.core.web.Result;
import com.arpa.wms.domain.dto.MoveDTO;
import com.arpa.wms.domain.entity.Move;
import com.arpa.wms.domain.vo.MoveVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 移位 服务类
 * </p>
 *
 * @author LEO
 * @since 2020-08-24
 */
public interface IMoveService extends IService<Move> {

    /**
     * 保存
     * @param entity
     * @return
     */

    Result saveMove(MoveVO entity);

    /**
     * 根据code更新实体
     * @param entity
     * @return
     */
    int updateByCode(Move entity);

    /**
     * 查询列表
     * @param moveDTO
     * @return
     */
    List<MoveVO> queryList(MoveDTO moveDTO);

    /**
     * 查询合计,包含总数
     * @param moveDTO
     * @return
     */
    MoveVO queryListSum(MoveDTO moveDTO);

    MoveVO getVoByCode(String code, String groupCode);

    void batchdel(List<String> codes);

    Result blank(String code);

    /**
     * 更新移位单下发状态
     * @param code 移位单标识
     */
    void updateIssueStatus(String code, String groupCode);

      /**
       *  @author: Allen chen
       *  @Date: 2020/11/26 10:49
       *  @Description:PC移位确认
       */
    void confirmPc(MoveDTO moveDTO);

     /**
      *  @author: Allen chen
      *  @Date: 2020/11/9 9:19
      *  @Description:获取移位确认明细信息
      */
     @Deprecated
    MoveVO getConfirmInfo(MoveDTO moveDTO);
     /**
      *  @author: Allen chen
      *  @Date: 2020/11/9 9:19
      *  @Description:获取PC移位确认明细信息
      */
     MoveVO getPcConfirmInfo(MoveDTO moveDTO);

    /**
     * 当移位单明细状态全为已完成时，更新主单的状态为已完成
     * @param code 主单code
     * @param value 已完成状态值
     * @return
     */
    int updateStatusIfAllItemFinish(String code, String value);
}
